﻿using ProjectManage.Core.Enum;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ProjectManage.Core.Dto
{
    //
    // 摘要:
    //     查询条件实体类
    public class QueryParameter
    {
        //
        // 摘要:
        //     获得/设置 模糊查询关键字
        public string SearchText { get; set; }

        //
        // 摘要:
        //     获得 排序字段名称 由 BootstrapBlazor.Components.Table`1.SortName 设置
        public string SortName { get; set; }

        //
        // 摘要:
        //     获得 排序方式 由 BootstrapBlazor.Components.Table`1.SortOrder 设置
        public SortOrder SortOrder { get; set; }

        //
        // 摘要:
        //     获得/设置 多列排序集合 默认为 Empty 内部为 "Name" "Age desc" 由 BootstrapBlazor.Components.Table`1.SortString
        //     设置
        public List<string> SortList { get; set; } = new List<string>(10);


        //
        // 摘要:
        //     获得 搜索条件绑定模型 未设置 BootstrapBlazor.Components.Table`1.CustomerSearchModel 时为 BootstrapBlazor.Components.Table`1
        //     泛型模型
        public object SearchModel { get; set; }

        //
        // 摘要:
        //     获得 当前页码 首页为 第一页
        public int PageIndex { get; set; } = 1;


        //
        // 摘要:
        //     获得 请求读取数据开始行 默认 0
        //
        // 言论：
        //     BootstrapBlazor.Components.Table`1.ScrollMode 开启虚拟滚动 BootstrapBlazor.Components.ScrollMode.Virtual
        //     时使用
        public int StartIndex { get; set; }

        //
        // 摘要:
        //     获得 每页条目数量 由 BootstrapBlazor.Components.Table`1.PageItems 与 BootstrapBlazor.Components.Table`1.PageItemsSource
        //     设置
        public int PageItems { get; set; } = 20;


        ////
        //// 摘要:
        ////     获得 是否是分页查询 默认为 false 由 BootstrapBlazor.Components.Table`1.IsPagination 设置
        //public bool IsPage { get; set; }

        //
        // 摘要:
        //     获得 通过列集合中的 BootstrapBlazor.Components.ITableColumn.Searchable 列与 BootstrapBlazor.Components.QueryPageOptions.SearchText
        //     拼装 IFilterAction 集合
        public List<SearchFilterAction> Searchs { get; set; } = new List<SearchFilterAction>(20);


        ////
        //// 摘要:
        ////     获得 获得 BootstrapBlazor.Components.Table`1.CustomerSearchModel 中过滤条件 BootstrapBlazor.Components.Table`1.SearchTemplate
        ////     模板中的条件请使用 BootstrapBlazor.Components.QueryPageOptions.AdvanceSearchs获得
        //public List<SearchFilterAction> CustomerSearchs { get; } = new List<SearchFilterAction>(20);


        ////
        //// 摘要:
        ////     获得 获得 BootstrapBlazor.Components.Table`1.SearchModel 中过滤条件
        //public List<SearchFilterAction> AdvanceSearchs { get; } = new List<SearchFilterAction>(20);


        ////
        //// 摘要:
        ////     获得/设置 过滤条件集合 等同于 BootstrapBlazor.Components.Table`1.Filters 值
        //public List<SearchFilterAction> Filters { get; } = new List<SearchFilterAction>(20);

    }
}
